package com.bigShen.pattern.prototype.main;

/**
 * Created by lei.shen on 2018/9/23.
 */
public class PrototypeDesc {

    /**
     * 原型模式:
     * 从一个对象再创建一个可定制的对象，内容相同，实例不同。就是Java里的clone技术。
     * 一根毫毛吹出千万个, 看着相同，实际不一样
     *
     * DTO - VO - POJO - Entity
     * DTO (Data transfer Object) :  数据传输对象, 在 MVC层传递
     * VO (View Object): DTO对象复制给VO对象，供前台View使用
     * POJO (Plain Ordinary Java Object) :  : 普通的Java对象
     * Entity : 数据库表对应Java对象
     *
     * VIEW -(VO)-> Action -(DTO)-> SERVICE -(DO)-> DAO -(PO)-> JDBC --> DB
     *
     *
     * 常用的几种复制方法：
     *
     * 浅克隆: 属性值一样,内存地址也一样,修改克隆对象会影响原对象
     * 深克隆: 属性值一样,内存地址不一样,
     * Java反射 克隆
     * 序列化: 输出流写,输入流读取
     * 简单方法克隆
     * Spring 声明的对象 "scope='prototype'"
     *
     * 一般，我们需要的都是深克隆
     *
     */

}
